#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QHBoxLayout>
#include "sessionfriendarea.h"
#include "messageshowarea.h"
#include "selfinfowidget.h"
#include "sessiondetailwidget.h"
#include "choosefrienddialog.h"

QT_BEGIN_NAMESPACE
namespace Ui
{
    class MainWidget;
}
QT_END_NAMESPACE

class MainWidget : public QWidget
{
    Q_OBJECT

public:
    static MainWidget* getInstance();
    ~MainWidget();
private:

    static MainWidget* instance;
    MainWidget(QWidget *parent = nullptr);
private:
    Ui::MainWidget* ui;
private:
    QWidget* windowLeft;
    QWidget* windowMid;
    QWidget* windowRight;
    // ⽤⼾头像
    QPushButton* userAvatar;

    // tab 按钮
    QPushButton* sessionTabBtn;
    QPushButton* friendTabBtn;
    QPushButton* applyTabBtn;
    // 搜索框
    QLineEdit* searchEdit;
    // 添加好友按钮
    QPushButton* addFriendBtn;

    // 显⽰会话列表和好友列表的
    SessionFriendArea* sessionFriendArea;
    // 右侧窗⼝上⽅的会话标题
    QLabel* sessionTitle;
    // 右侧上⽅的会话详情按钮
    QPushButton* extraButton;
    // 右侧窗⼝中间的消息显⽰区
    MessageShowArea* messageShowArea;
    // 右侧窗⼝下⽅的消息编辑区
    MessageEditArea* messageEditArea;

    // 描述当前激活的标签⻚
    enum ActiveTab
    {
        SESSION_LIST, // 会话列表
        FRIEND_LIST, // 好友列表
        APPLY_LIST // 好友申请列表
    };
    ActiveTab activeTab = SESSION_LIST;
    ActiveTab getActiveTab();
    void initUI();
    void initMainWindow();
    void initWindowLeft();
    void initWindowMid();
    void initWindowRight();
public slots:
    void switchTabToSession();
    void switchTabToFriend();
    void switchTabToApply();
};


#endif // MAINWIDGET_H
